package cc.mrbird.common.utils;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

/**
 * 公共工具类
 * @author yzb
 * @Date 2019年9月17日
 */
public class CommUtil {

	/**
	 * 去集合的最值
	 * @author yzb
	 * @Date 2019年9月18日
	 * @param list
	 * @return
	 */
	public static List<Float> getExtremeValue(List<Float> list){
		float maximum = 0; //最大值
		float minimum = 0; //最小值
		List<Float> extremeList = new ArrayList<Float>();
		if (list != null && list.size() != 0) {
			maximum = Collections.max(list);
			minimum = Collections.min(list);
			extremeList.add(maximum);
			extremeList.add(minimum);
		}
		return extremeList;
	}
	
	/**
	 * 
	 * @author yzb
	 * @Date 2019年9月20日
	 * @param time
	 * @return
	 */
	public static String getStartTime(String time) {
		String startTime = null;
		if (StringUtils.isNotBlank(time) && !"null".equals(time)) {
			startTime = time.substring(0, time.lastIndexOf("/"));
		}
		return startTime;
	}
	
	
	/**
	 * 字符串转double保留两位小数返回字符串
	 * @author yzb
	 * @Date 2019年9月22日
	 * @param str
	 * @param num
	 * @return
	 */
	public static double strToDouble(String str,int num){
		 Double f = null;
		 if (str != null && !"".equals(str)) {
		   Double d = Double.parseDouble(str);
		   if (!d.isNaN()) {
			   BigDecimal bg = new BigDecimal(d);
	           f = bg.setScale(num, BigDecimal.ROUND_HALF_UP).doubleValue();
		   } else {
			   f = 0d;
		   }
		 }
		 return f;
	}
	
	/**
	 * 
	 * @author yzb
	 * @Date 2019年9月22日
	 * @param d
	 * @param num
	 * @return
	 */
	public static double dealDouble(Double d,int num) {
		Double f = null;
		if (!d.isNaN()) {
		   BigDecimal bg = new BigDecimal(d);
           f = bg.setScale(num, BigDecimal.ROUND_HALF_UP).doubleValue();
		} else {
		   f = 0d;
		}
		return f;
	}
	
	/**
	 * 获取List<Integer>的最值
	 * @author yzb
	 * @Date 2019年6月14日
	 * @param list
	 * @return
	 */
	public static Map<String, Object> getExtremeNumValue(List<Integer> list){
		Integer maxNum = list.get(0);// 指标最大值
		Integer minNum = list.get(0);// 指标最小值
		for (Integer integer : list) {
			if (maxNum < integer) {
				maxNum = integer;
			}
			if (minNum > integer) {
				minNum = integer;
			}
		}
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("maxNum", maxNum);
		map.put("minNum", minNum);
		return map;
	}
	
	/**
	 * 获取List<Double>的最值
	 * @author yzb
	 * @Date 2019年9月22日
	 * @param list
	 * @return
	 */
	public static Map<String, Object> getExtremeRateValue(List<Double> list){
		int maxRate = 0;// 指标最大值
		int minRate = 0;// 指标最小值
		if (list != null && list.size() != 0) {
			maxRate = (int) Math.ceil(Collections.max(list));
			minRate = (int) Math.floor(Collections.min(list));
		}
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("maxRate", maxRate);
		map.put("minRate", minRate);
		return map;
	}
	
	/**
	 * 对象转字符串
	 * @author yzb
	 * @Date 2019年9月22日
	 * @param obj
	 * @return
	 */
	public static String ObjToStr(Object obj) {
		String str = "";
		if (obj != null) {
			str = obj.toString();
		} 
		return str;
	}
	
	
	public static void main(String[] args) {
		String sdate = "2019/9/16";
		System.out.println(getStartTime(sdate));
	}
	
}
